/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.mocamorena.model;

import br.com.mocamorena.model.constant.EstadoCivil;
import br.com.mocamorena.model.constant.Natureza;
import br.com.mocamorena.model.constant.Sexo;
import com.towel.el.annotation.Resolvable;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Diego
 */
public class Cliente {

    @Resolvable(colName = "Código")
    private long id;
    @Resolvable(colName = "Bloqueado")
    private boolean bloqueado;
    @Resolvable(colName = "Natureza")
    private Natureza natureza;
    @Resolvable(colName = "Cliente")
    private String nome;
    private String empresa;
    private String representante;
    @Resolvable(colName = "CPF/CNPJ")
    private String cadastroPessoa; //CPF ou CNPJ
    private Sexo sexo;
    private EstadoCivil estadoCivil = EstadoCivil.SOLTEIRO;
    private Date dataNascimento;
    private String rg;
    private String orgExp;
    @Resolvable(colName = "Município")
    private Endereco endereco;
    private Date dataCadastro;
    private String observacao;
    private List<Telefone> telefonesList;

    public Cliente() {
    }

    public Cliente(long id) {
        this.id = id;
    }

    public boolean isBloqueado() {
        return bloqueado;
    }

    public void setBloqueado(boolean bloqueado) {
        this.bloqueado = bloqueado;
    }

    public String getCadastroPessoa() {
        return cadastroPessoa;
    }

    public void setCadastroPessoa(String cadastroPessoa) {
        this.cadastroPessoa = cadastroPessoa;
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public EstadoCivil getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(EstadoCivil estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Natureza getNatureza() {
        return natureza;
    }

    public void setNatureza(Natureza natureza) {
        this.natureza = natureza;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmpresa() {
        return empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    public String getObservacao() {
        return observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    public String getOrgExp() {
        return orgExp;
    }

    public void setOrgExp(String orgExp) {
        this.orgExp = orgExp;
    }

    public String getRepresentante() {
        return representante;
    }

    public void setRepresentante(String representante) {
        this.representante = representante;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public Sexo getSexo() {
        return sexo;
    }

    public void setSexo(Sexo sexo) {
        this.sexo = sexo;
    }

    public List<Telefone> getTelefonesList() {
        return telefonesList;
    }

    public void setTelefonesList(List<Telefone> telefonesList) {
        this.telefonesList = telefonesList;
    }

    @Override
    public String toString() {
        return id + " - " + nome;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Cliente other = (Cliente) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 83 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }
}
